package com.hiv.mapper.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 管理员对象 admin
 * 
 * @author zhanghong
 * @date 2022-07-09
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("管理员")
public class Admin implements Serializable {
    private Long id;
    @ApiModelProperty("名称")
    private String name;
    @ApiModelProperty("账号")
    private String account;
    @ApiModelProperty("密码")
    private String password;
    @ApiModelProperty("账号类型 0超级管理员 1质控中心 2医院 3检验所")
    private Integer type;
    @ApiModelProperty("关联的医院对应的质控中心id")
    private Long hospitalPid;
    @ApiModelProperty("关联的医院id")
    private Long hospitalId;
    @ApiModelProperty("编制/审核/批准角色账号(签名照片)")
    private String signImage;
    @ApiModelProperty("状态 0禁用 1启用")
    private Integer status;
    @ApiModelProperty("删除状态 0未删除 1已删除")
    private Integer deleted;
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    private Date updateTime;
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    private Date createTime;
    @ApiModelProperty("权限集合")
    private List<String> permissionCodes;

    @ApiModelProperty("医院层级")
    private List<Long> hospitalLevels;
    @ApiModelProperty("关联的质控中心/医院/检验名称")
    private String hospitalName;
    @ApiModelProperty("+角色id")
    private Long roleId;
    @ApiModelProperty("+角色所属平台 1小程序端 2管理端")
    private Integer platform;
    @ApiModelProperty("+小程序端角色类型 1采样员 2医生")
    private Integer wechatRoleType;
}
